package com.ruoyi.pack.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 定位日志对象 pack_location_log
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public class PackLocationLog extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 日志ID */
    private Long logId;

    /** 定位器ID */
    @Excel(name = "定位器ID")
    private Long locatorId;

    /** 定位器编码 */
    @Excel(name = "定位器编码")
    private String locatorCode;

    /** 器具ID */
    @Excel(name = "器具ID")
    private Long containerId;

    /** 器具编码 */
    @Excel(name = "器具编码")
    private String containerCode;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;

    /** 上传纬度 */
    @Excel(name = "上传纬度")
    private BigDecimal latitude;

    /** 上传经度 */
    @Excel(name = "上传经度")
    private BigDecimal longitude;

    /** 上传地址 */
    @Excel(name = "上传地址")
    private String uploadAddress;

    /** 省份 */
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 区县 */
    @Excel(name = "区县")
    private String district;

    /** 电池电量（百分比） */
    @Excel(name = "电池电量")
    private Integer batteryLevel;

    /** 温度（摄氏度） */
    @Excel(name = "温度（℃）")
    private BigDecimal temperature;

    /** 湿度（百分比） */
    @Excel(name = "湿度（%）")
    private BigDecimal humidity;

    /** 震动等级（1-5级） */
    @Excel(name = "震动等级", readConverterExp = "1=轻微,2=一般,3=中等,4=强烈,5=剧烈")
    private Integer shockLevel;

    /** 其他传感器数据（JSON格式） */
    private String otherData;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 定位器信息 */
    private PackLocator locatorInfo;

    /** 器具信息 */
    private PackContainer containerInfo;

    /** 运输计划到达偏差（小时） */
    @Excel(name = "到达偏差")
    private Double arrivalDeviation;

    /** 运输计划偏差状态 */
    @Excel(name = "偏差状态")
    private String deviationStatus;

    public void setLogId(Long logId) 
    {
        this.logId = logId;
    }

    public Long getLogId() 
    {
        return logId;
    }
    public void setLocatorId(Long locatorId) 
    {
        this.locatorId = locatorId;
    }

    public Long getLocatorId() 
    {
        return locatorId;
    }
    public void setContainerId(Long containerId) 
    {
        this.containerId = containerId;
    }

    public Long getContainerId() 
    {
        return containerId;
    }
    public void setUploadTime(Date uploadTime) 
    {
        this.uploadTime = uploadTime;
    }

    public Date getUploadTime() 
    {
        return uploadTime;
    }
    public void setLatitude(BigDecimal latitude) 
    {
        this.latitude = latitude;
    }

    public BigDecimal getLatitude() 
    {
        return latitude;
    }
    public void setLongitude(BigDecimal longitude) 
    {
        this.longitude = longitude;
    }

    public BigDecimal getLongitude() 
    {
        return longitude;
    }
    public void setUploadAddress(String uploadAddress) 
    {
        this.uploadAddress = uploadAddress;
    }

    public String getUploadAddress() 
    {
        return uploadAddress;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setDistrict(String district) 
    {
        this.district = district;
    }

    public String getDistrict() 
    {
        return district;
    }
    public void setBatteryLevel(Integer batteryLevel) 
    {
        this.batteryLevel = batteryLevel;
    }

    public Integer getBatteryLevel() 
    {
        return batteryLevel;
    }
    public void setTemperature(BigDecimal temperature) 
    {
        this.temperature = temperature;
    }

    public BigDecimal getTemperature() 
    {
        return temperature;
    }
    public void setHumidity(BigDecimal humidity) 
    {
        this.humidity = humidity;
    }

    public BigDecimal getHumidity() 
    {
        return humidity;
    }
    public void setShockLevel(Integer shockLevel) 
    {
        this.shockLevel = shockLevel;
    }

    public Integer getShockLevel() 
    {
        return shockLevel;
    }
    public void setOtherData(String otherData) 
    {
        this.otherData = otherData;
    }

    public String getOtherData() 
    {
        return otherData;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public String getLocatorCode() 
    {
        return locatorCode;
    }

    public void setLocatorCode(String locatorCode) 
    {
        this.locatorCode = locatorCode;
    }

    public String getContainerCode() 
    {
        return containerCode;
    }

    public void setContainerCode(String containerCode) 
    {
        this.containerCode = containerCode;
    }

    public PackLocator getLocatorInfo() 
    {
        return locatorInfo;
    }

    public void setLocatorInfo(PackLocator locatorInfo) 
    {
        this.locatorInfo = locatorInfo;
    }

    public PackContainer getContainerInfo() 
    {
        return containerInfo;
    }

    public void setContainerInfo(PackContainer containerInfo) 
    {
        this.containerInfo = containerInfo;
    }

    public Double getArrivalDeviation() 
    {
        return arrivalDeviation;
    }

    public void setArrivalDeviation(Double arrivalDeviation) 
    {
        this.arrivalDeviation = arrivalDeviation;
    }

    public String getDeviationStatus() 
    {
        return deviationStatus;
    }

    public void setDeviationStatus(String deviationStatus) 
    {
        this.deviationStatus = deviationStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("logId", getLogId())
            .append("locatorId", getLocatorId())
            .append("locatorCode", getLocatorCode())
            .append("containerId", getContainerId())
            .append("containerCode", getContainerCode())
            .append("uploadTime", getUploadTime())
            .append("latitude", getLatitude())
            .append("longitude", getLongitude())
            .append("uploadAddress", getUploadAddress())
            .append("province", getProvince())
            .append("city", getCity())
            .append("district", getDistrict())
            .append("batteryLevel", getBatteryLevel())
            .append("temperature", getTemperature())
            .append("humidity", getHumidity())
            .append("shockLevel", getShockLevel())
            .append("otherData", getOtherData())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
} 